Presto হল একটি ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন যা ডেটা বিশ্লেষণ এবং প্রসেসিং করার জন্য ব্যবহৃত হয়। Presto একটি REST API প্রদান করে যা আপনাকে কোয়েরি এক্সিকিউশন, কোয়েরি মেটাডেটা, এবং ক্লাস্টার পারফরম্যান্স ট্র্যাকিং করতে সক্ষম করে। Presto REST API এর মাধ্যমে আপনি কোয়েরি চালাতে, ফলাফল সংগ্রহ করতে এবং কোয়েরি ব্যবস্থাপনা করতে পারেন।
এখানে, আমরা Presto REST API ব্যবহার করার পদ্ধতি এবং উদাহরণ আলোচনা করব।
Presto REST API Overview
Presto REST API মূলত দুটি প্রধান কাজের জন্য ব্যবহৃত হয়:
- Query Execution: SQL কোয়েরি পাঠানো এবং তার ফলাফল সংগ্রহ করা।
- Query Status: কোয়েরির স্টেটাস এবং প্রগ্রেস ট্র্যাক করা।
Presto REST API মূলত HTTP প্রোটোকল ব্যবহার করে কোয়েরি রিকোয়েস্ট গ্রহণ করে এবং JSON ফরম্যাটে ফলাফল প্রদান করে।
Presto REST API: Request and Response Format
- Request Format: API এ
POSTএবংGETরিকোয়েস্ট করা হয়। কোয়েরি এক্সিকিউশনের জন্যPOSTব্যবহার করা হয়, এবং কোয়েরি স্টেটাস বা ফলাফল পেতেGETব্যবহার করা হয়। - Response Format: API সাধারণত JSON ফরম্যাটে ফলাফল প্রদান করে।
Presto REST API Example:
১. কোয়েরি চালানো (Query Execution)
Presto REST API-তে কোয়েরি চালানোর জন্য, প্রথমে /v1/statement এ একটি POST রিকোয়েস্ট পাঠাতে হয়।
Request:
POST http://<presto-server>:8080/v1/statement
Headers:
Content-Type: application/json
Request Body:
{
"query": "SELECT * FROM hive.default.orders LIMIT 10"
}
এই রিকোয়েস্টে, Presto সার্ভার hive.default.orders টেবিল থেকে 10টি রেকর্ড নির্বাচন করবে।
Response:
{
"id": "d093dd6d-30a9-4f96-a28f-bf9a111f6a79",
"state": "QUEUED"
}
- id: কোয়েরির একটি ইউনিক আইডি যা আপনি পরবর্তী API কলের জন্য ব্যবহার করবেন।
- state: কোয়েরির অবস্থা, যেমন
QUEUED,RUNNING, বাFINISHED।
২. কোয়েরি স্টেটাস চেক করা (Check Query Status)
কোয়েরি চালানোর পর, আপনি তার স্টেটাস ট্র্যাক করতে GET /v1/query/{query_id} API ব্যবহার করতে পারেন।
Request:
GET http://<presto-server>:8080/v1/query/d093dd6d-30a9-4f96-a28f-bf9a111f6a79
Response:
{
"id": "d093dd6d-30a9-4f96-a28f-bf9a111f6a79",
"state": "FINISHED",
"stats": {
"totalSplits": 12,
"queuedSplits": 0,
"runningSplits": 0,
"completedSplits": 12,
"cpuTimeMillis": 30,
"wallTimeMillis": 1024
}
}
- state: কোয়েরির বর্তমান অবস্থা। উদাহরণস্বরূপ, এটি
RUNNING,QUEUED, বাFINISHEDহতে পারে। - stats: কোয়েরির এক্সিকিউশনের বিস্তারিত, যেমন কতটি split কাজ করেছে এবং মোট CPU এবং সময় ব্যবহার।
৩. কোয়েরির ফলাফল প্রাপ্তি (Query Results)
কোয়েরি সম্পন্ন হলে, আপনি GET /v1/query/{query_id}/results API কল করে ফলাফল পেতে পারেন।
Request:
GET http://<presto-server>:8080/v1/query/d093dd6d-30a9-4f96-a28f-bf9a111f6a79/results
Response:
{
"columns": [
{ "name": "order_id", "type": "bigint" },
{ "name": "customer_id", "type": "bigint" },
{ "name": "order_status", "type": "varchar" }
],
"data": [
{ "row": [1001, 2001, "shipped"] },
{ "row": [1002, 2002, "processing"] },
{ "row": [1003, 2003, "shipped"] }
]
}
- columns: প্রতিটি কলামের নাম এবং টাইপ।
- data: কোয়েরির ফলাফল, প্রতিটি রেকর্ডের জন্য একটি
rowপ্রদান করা হয়।
Presto REST API তে Authentication
যদি Presto REST API এর জন্য authentication প্রয়োজন হয়, তবে Basic Authentication বা Kerberos Authentication ব্যবহার করতে হবে।
Basic Authentication উদাহরণ:
curl -u username:password -X POST http://<presto-server>:8080/v1/statement -d '{"query":"SELECT * FROM hive.default.orders LIMIT 10"}'
এখানে, -u username:password ব্যবহারকারী নাম এবং পাসওয়ার্ড প্রদান করে।
Presto REST API এর ব্যবহার:
- Automation: আপনি Presto REST API ব্যবহার করে কোয়েরি এক্সিকিউশন স্বয়ংক্রিয় করতে পারেন, যেমন ETL (Extract, Transform, Load) প্রক্রিয়া বা ব্যাচ প্রসেসিং।
- Integration: আপনি Presto REST API ব্যবহার করে অন্যান্য সিস্টেমের সাথে Presto ইন্টিগ্রেট করতে পারেন, যেমন BI টুলস, ডেটা পিপলাইনের সাথে সংযোগ করা।
- Query Monitoring: আপনি Presto REST API দিয়ে কোয়েরির স্টেটাস এবং পারফরম্যান্স ট্র্যাক করতে পারেন।
সারাংশ
Presto REST API একটি কার্যকরী এবং নমনীয় পদ্ধতি প্রদান করে Presto সার্ভারের সাথে ইন্টারঅ্যাক্ট করার জন্য। আপনি API ব্যবহার করে কোয়েরি এক্সিকিউট করতে পারেন, ফলাফল পেতে পারেন, এবং কোয়েরি স্টেটাস মনিটর করতে পারেন। REST API কে ব্যবহার করে, আপনি Presto কোয়েরি এক্সিকিউশনকে সহজে স্বয়ংক্রিয় বা তৃতীয় পক্ষের সিস্টেমের সঙ্গে সংযুক্ত করতে পারেন।
Read more